Le case expression est la pierre angulaire du flux de contrôle d'Elixir. Contrairement aux instructions switch impératives, case il s'agit d'une expression fonctionnelle qui retourne le résultat de la branche correspondante, permettant aux développeurs de déconstruire instantanément des types de données complexes comme les cartes et les tuples tout en imposant une logique exhaustive.
1. Correspondance de motifs et liaison
Le case l'expression vous permet de tester une valeur contre un ensemble de motifs. Elle exécute le code associé au premier motif correspondant et retourne la valeur de ce code. Vous pouvez lier des variables dans la correspondance pour une utilisation immédiate dans la logique de la branche.
%{state: some_state} = person ->
IO.puts "#{person.name} vit à #{some_state}"
fin
2. Flux logique visuel
3. Conditions de garde et exhaustivité
En utilisant le mot-clé when vous pouvez enrichir les correspondances structurelles avec une logique prédicative (par exemple, is_number(age) et age >= 21). Elixir exige une correspondance pour chaque entrée potentielle ; si aucun motif ne correspond, une Erreur CaseClauseError est levée.